home *** CD-ROM | disk | FTP | other *** search
/ BBS in a Box 5 / BBS in a Box -Volume V (BBS in a Box) (April 1992).iso / Files / Word / Ae-An / Alpha.20.release.cpt / Alpha.2.0.rsrc / STR#_129.txt < prev    next >
Text File  |  1990-08-24  |  27KB  |  1,311 lines

  1.   text glommed together for this purpose.
  2.  
  3.   one keystroke, but consecutive 'killLines' have their 
  4.  
  5.   last deleted text" refers to text that was deleted in 
  6.  
  7.   about text that was merely deleted. Ordinarily, "the 
  8.  
  9.   is different from 'paste' in that 'paste' doesn't know 
  10.  
  11.   'cut', 'copy'd, or deleted in any way. Note that 'yank' 
  12.  
  13. ‚Ä¢ yank - insert the last piece of text that has been 
  14.  
  15. ‚Ä¢ winSearch - brings up search and replace dialog
  16.  
  17.   uppercase in the current word
  18.  
  19. ‚Ä¢ upcaseWord - convert all lowercase letters to 
  20.  
  21.   uppercase in the current region
  22.  
  23. ‚Ä¢ upcaseRegion - convert all lowercase letters to 
  24.  
  25. ‚Ä¢ undo - undo the last action that has not been undone
  26.  
  27. ‚Ä¢ tileVert - tile the windows vertically
  28.  
  29.   set horizontal and vertical amount
  30.  
  31. ‚Ä¢ tileOrder - offset each window from the previous by a 
  32.  
  33. ‚Ä¢ tileHor - tile the windows horizontally
  34.  
  35. ‚Ä¢ tileFull - make all windows "full screen"
  36.  
  37. ‚Ä¢ startKeyboardMacro - start recording keyboard macro
  38.  
  39.   shift key in the next keystroke
  40.  
  41.   keystroke combination, in the same manner as using the 
  42.  
  43. ‚Ä¢ startEscape - used to further modify the next 
  44.  
  45. ‚Ä¢ shiftRegionRight - shift the current region right a tab
  46.  
  47. ‚Ä¢ shiftRegionLeft - shifts the current region left a tab
  48.  
  49.   in macros
  50.  
  51. ‚Ä¢ setNamedMark - set a named mark in a file, use 'mark' 
  52.  
  53. ‚Ä¢ setMark - set the current mark to the insertion point
  54.  
  55. ‚Ä¢ set - macro-only func to set var values, see examples
  56.  
  57.   next occurance
  58.  
  59. ‚Ä¢ searchRfa - replace the current selection and find 
  60.  
  61. ‚Ä¢ searchReplace - replace the current selection
  62.  
  63.   current file
  64.  
  65. ‚Ä¢ searchRall - replace all futher occurances in the 
  66.  
  67. ‚Ä¢ searchEnter - use current selection for future searches
  68.  
  69.   the up arrow in the vertical scrollbar is selected
  70.  
  71. ‚Ä¢ scrollUpLine - same action as that which occurs when 
  72.  
  73.   the down arrow in the vertical scrollbar is selected
  74.  
  75. ‚Ä¢ scrollDownLine - same action as that which occurs when 
  76.  
  77. ‚Ä¢ saveVars - save variable state, see 'restoreVars'
  78.  
  79. ‚Ä¢ revert - revert the file to it's last saved version
  80.  
  81.   see 'saveVars'
  82.  
  83. ‚Ä¢ restoreVars - restore variables to saved state, 
  84.  
  85. ‚Ä¢ repeatSearchForward - repeat search forward
  86.  
  87. ‚Ä¢ repeatSearchBackward - repeat search backward
  88.  
  89.   not redone
  90.  
  91. ‚Ä¢ redo - redo the next action that has been undone but 
  92.  
  93. ‚Ä¢ quickSort - sort the lines in the current region
  94.  
  95.   line
  96.  
  97. ‚Ä¢ previousLine - move insertion point to the previous 
  98.  
  99. ‚Ä¢ prevWindow - select previous window
  100.  
  101.   declaration
  102.  
  103. ‚Ä¢ prevFunc - hilite first line of previous 'C' function 
  104.  
  105. ‚Ä¢ prevLineSelect - extend selection to the previous line
  106.  
  107.   in the next keystroke
  108.  
  109.   combination, in the same manner as using the shift key 
  110.  
  111. ‚Ä¢ prefixChar - used to further modify the next keystroke 
  112.  
  113. ‚Ä¢ pasteClip - paste to named clipboard
  114.  
  115.   or 'copy'
  116.  
  117. ‚Ä¢ paste - insert the last chunk of text created by 'cut' 
  118.  
  119. ‚Ä¢ pageForward - display next screenful
  120.  
  121. ‚Ä¢ pageBack - display previous screenful
  122.  
  123.   one and move the insertion point to it
  124.  
  125. ‚Ä¢ openLine - insert a new line following the current 
  126.  
  127. ‚Ä¢ nextWindow - select next window
  128.  
  129. ‚Ä¢ nextLine - move insertion point to next line
  130.  
  131.   declaration
  132.  
  133. ‚Ä¢ nextFunc - select first line of next 'C' function 
  134.  
  135. ‚Ä¢ nextLineSelect - extend selection to the next line
  136.  
  137.   insertion point
  138.  
  139.   character that matches the character after the current 
  140.  
  141. ‚Ä¢ matchBrace - moves the insertion point to the 
  142.  
  143.   selected.
  144.  
  145.   the region between the insertion point and the mark is
  146.  
  147.   around the old selection. If there is not a selection,
  148.  
  149.   is unhilited, leaving the mark and the insertion point
  150.  
  151.   If there is a currently hilited selection, the selection
  152.  
  153. ‚Ä¢ markHilite - This is the 'Hilite' from the 'Edit' menu.
  154.  
  155.   text take effect
  156.  
  157.   bindings or macro definitions are present in the loaded 
  158.  
  159.   nothing is hilited. 'load'ing means that whatever 
  160.  
  161. ‚Ä¢ loadFile - loads hilited text, or entire window if 
  162.  
  163. ‚Ä¢ killWindow - kill current window
  164.  
  165.   and move succeeding lines up one.
  166.  
  167.   of the line. If the line has no text, delete the line 
  168.  
  169. ‚Ä¢ killLine - kill text from insertion point to the end 
  170.  
  171.   alphaBits' file.
  172.  
  173.   function can be used to create bindings in the '
  174.  
  175.   representing and modifiers into the current window. This 
  176.  
  177. ‚Ä¢ keyCode - insert the key code along w/ a string 
  178.  
  179.   necessary.
  180.  
  181.   of the keydown event, plus a modifier string, if 
  182.  
  183. ‚Ä¢ keyAscii - insert the ascii representation (in decimal)
  184.  
  185.   macro (including the keyboard macro) many times.
  186.  
  187.   window. Also can be used to execute any function or 
  188.  
  189.   times. "option-u 44 =" inserts 44 '='s into the current 
  190.  
  191. ‚Ä¢ iterationCount - allows actions to be repeated many 
  192.  
  193.   number along w/ the total number of lines in the file
  194.  
  195.   is on the first line shown, and display the current line 
  196.  
  197. ‚Ä¢ insertToTop - make the line that the insertion point 
  198.  
  199.   undoable.
  200.  
  201.   corresponding file into the current window. Not
  202.  
  203. ‚Ä¢ insertFile - prompts for a file name and inserts the
  204.  
  205.   text.
  206.  
  207. ‚Ä¢ insertAscii - prompts for an ASCII code and inserts into
  208.  
  209.   find the include file. 
  210.  
  211.   the suffix and use the var 'includePath' to try to 
  212.  
  213. ‚Ä¢ includeFile - expand the current selection to include 
  214.  
  215. ‚Ä¢ gotoMark - goto named mark, use 'mark' in macros.
  216.  
  217. ‚Ä¢ gotoLine - go to a line number
  218.  
  219.   the current window
  220.  
  221.   and paste the complete path-name of the chosen file into 
  222.  
  223. ‚Ä¢ getPathName - present the user w/ a SFGetFIle dialog 
  224.  
  225. ‚Ä¢ getHelp - display help dialog
  226.  
  227.   current insertion ponit
  228.  
  229. ‚Ä¢ getAscii - displays the ASCII code for character at 
  230.  
  231.   memory reserves of ALPHA
  232.  
  233. ‚Ä¢ freeMem - give a rough approximation of the current 
  234.  
  235. ‚Ä¢ forwardWord - move insertion one word forward
  236.  
  237. ‚Ä¢ forwardChar - move insertion one character forward
  238.  
  239.   forward
  240.  
  241. ‚Ä¢ forwardCharSelect - extend selection one character 
  242.  
  243. ‚Ä¢ findFile - open a new file
  244.  
  245.   definition
  246.  
  247.   to use the file 'cTAGS' to locate the function's 
  248.  
  249. ‚Ä¢ findTag - prompt user for a function name and attempt 
  250.  
  251. ‚Ä¢ fillRegion - as above for current region
  252.  
  253.   by white-space lines
  254.  
  255.   paragraph is here defined as any block of text delimited 
  256.  
  257.   between the columns 'leftFillColumn' and 'fillColumn'. A 
  258.  
  259.   in the current paragraph in order for all text to fit 
  260.  
  261. ‚Ä¢ fillParagraph - inserts/deletes lines and moves text 
  262.  
  263.   window
  264.  
  265. ‚Ä¢ fileStats - displays chars, words, and lines for current
  266.  
  267. ‚Ä¢ fileRemove - prompts for a file, and removes it
  268.  
  269.   modification time, and creation time
  270.  
  271.   creator, sizes of both data and resource forks, last
  272.  
  273. ‚Ä¢ fileInfo - prompts for a file, and displays type, 
  274.  
  275.   macro
  276.  
  277. ‚Ä¢ executeKeyboardMacro - execute the current keyboard 
  278.  
  279.   w/ the current insertion point
  280.  
  281. ‚Ä¢ exchangePointAndmark - exchange the current 'mark' 
  282.  
  283. ‚Ä¢ endOfLine - move insertion to the end of the line
  284.  
  285. ‚Ä¢ endOfBuffer - move insertion to the end of the buffer
  286.  
  287. ‚Ä¢ endKeyboardMacro - stop recording keyboard macro
  288.  
  289. ‚Ä¢ endLineSelect - extend selection to the end of the line
  290.  
  291.   buffer
  292.  
  293. ‚Ä¢ endBufferSelect - extend selection to the end of the 
  294.  
  295.   correct line and open a new line
  296.  
  297. ‚Ä¢ electricRightBrace - insert a right brace on the 
  298.  
  299.   line and indent to the "proper" level. 
  300.  
  301.   sure that the brace is on a new line, open a further 
  302.  
  303. ‚Ä¢ electricLeftBrace - if 'electricLBrace' is set, make 
  304.  
  305.   into the current buffer
  306.  
  307.   keyboard macro and then dumps a definition of the macro 
  308.  
  309. ‚Ä¢ dumpMacro - prompts the user to name the current 
  310.  
  311.   lowercase in current word
  312.  
  313. ‚Ä¢ downcaseWord - changes all uppercase letters to 
  314.  
  315.   lowercase in current region
  316.  
  317. ‚Ä¢ downcaseRegion - changes all uppercase letters to 
  318.  
  319. ‚Ä¢ doZoom - zooms the current window
  320.  
  321. ‚Ä¢ doQuit - quits ALPHA
  322.  
  323. ‚Ä¢ doTab - insert a tab
  324.  
  325.   indent the new line
  326.  
  327.   electricSemi' is set, insert a carriage return and 
  328.  
  329. ‚Ä¢ doElectricSemi - insert semicolon, and if '
  330.  
  331. ‚Ä¢ doSave - saves current window
  332.  
  333. ‚Ä¢ doNew - opens an untitled window
  334.  
  335. ‚Ä¢ deleteWord - delete word after cursor
  336.  
  337. ‚Ä¢ deleteChar - delete char AFTER cursor
  338.  
  339. ‚Ä¢ cutClip - cut to named clipboard
  340.  
  341. ‚Ä¢ cut - deletes and saves region
  342.  
  343.   position (row and col) in the status line.
  344.  
  345. ‚Ä¢ currentPosition - displays number of lines and current
  346.  
  347.   a file called 'cTAGS'.
  348.  
  349.   and saves the locations of any function declarations in 
  350.  
  351. ‚Ä¢ createTagFile - searches all files in current file set 
  352.  
  353. ‚Ä¢ copyClip - copy to named clipboard
  354.  
  355. ‚Ä¢ copy - copy region
  356.  
  357. ‚Ä¢ closeAll - close all windows
  358.  
  359.   line if the variable 'indendOnCR' is set to 'on'
  360.  
  361. ‚Ä¢ carriageReturn - insert carriage return, indent new 
  362.  
  363. ‚Ä¢ capitalizeWord - capitalize word
  364.  
  365.   region 
  366.  
  367. ‚Ä¢ capitalizeRegion - capitalize all words in selected 
  368.  
  369.   the line
  370.  
  371. ‚Ä¢ beginningOfLine - move insertion to the beginning of 
  372.  
  373.   of the buffer
  374.  
  375. ‚Ä¢ beginningOfBuffer - move insertion to the beginning 
  376.  
  377.   beginning of the line
  378.  
  379. ‚Ä¢ beginningLineSelect - extend selection to the 
  380.  
  381.   beginning of the buffer
  382.  
  383. ‚Ä¢ beginningBufferSelect - extend selection to the 
  384.  
  385.   brackets that encloses the current selection
  386.  
  387. ‚Ä¢ balance - selects smallest set of parens, braces, or 
  388.  
  389. ‚Ä¢ backwardWord - moves insertion one char back
  390.  
  391. ‚Ä¢ backwardDeleteWord - deletes previous work
  392.  
  393. ‚Ä¢ backwardChar - moves insertion one char back
  394.  
  395. ‚Ä¢ backwardCharSelect - extends selection one char back
  396.  
  397. ‚Ä¢ abortEm - aborts whatever is currently happening
  398.  
  399.  
  400.  
  401. through pattern-matching the string "^[^ \t#]*(.*)$"". 
  402.  
  403. above, 'C' functions are detected not through parsing, but 
  404.  
  405. Several functions deal with 'C' functions. As stated 
  406.  
  407.  
  408.  
  409. selected.
  410.  
  411. commands also work on blocks of text that are currently 
  412.  
  413. status line will say 'Mark set'. All of the region 
  414.  
  415. You will always know when the mark is set because the 
  416.  
  417. commands such as 'beginningOfBuffer' or 'endOfBuffer'. 
  418.  
  419. current 'mark' is set by the 'setMark' command, or 
  420.  
  421. between the current 'mark', and the insertion point. The 
  422.  
  423. from emacs and are used to refer to all of the text 
  424.  
  425. Many of the commands manipulate 'regions'. Regions come 
  426.  
  427.  
  428.  
  429. ========================== 
  430.  
  431. Function Summary
  432.  
  433.  
  434.  
  435.  
  436.  
  437.  
  438.  
  439.                     during normal text insertion (typing)
  440.  
  441.                     in length are automatically wrapped
  442.  
  443. wordWrap          ‚Ä¢ if true, lines exceeding 'fillColumn'
  444.  
  445.                     the folder specified by 'backupFolder'
  446.  
  447. useBackupFolder   ‚Ä¢ if true, backup files are placed in
  448.  
  449. tagFile           ‚Ä¢ complete path-name of tag file
  450.  
  451. tabSize           ‚Ä¢ Default number of characters per tab.
  452.  
  453. suppressHeader    ‚Ä¢ Suppress header on printed pages.
  454.  
  455.                     comes up w/ nothing.
  456.  
  457.                     a prompt for a file. When 2, ALPHA
  458.  
  459.                     buffer. When 0, ALPHA comes up w/
  460.  
  461. startWithNew      ‚Ä¢ When one, ALPHA comes up w/ new 
  462.  
  463.                     for a regular expression
  464.  
  465. regExpr           ‚Ä¢ flag set if searchAgain should look
  466.  
  467.                     commands should affect.
  468.  
  469. numWinsToTile     ‚Ä¢ specifies the number of windows tile
  470.  
  471.                     on.
  472.  
  473.                     foreign keyboard will want this turned
  474.  
  475.                     sequences are not usable. Owners of
  476.  
  477.                     "dead keys". If TRUE, some option 
  478.  
  479.                     resource w/ one that does not have
  480.  
  481. noRemapOption     ‚Ä¢ When set, does not overlay system
  482.  
  483. matchWords        ‚Ä¢ Match words on searches.
  484.  
  485. leftFillColumn    ‚Ä¢ Number of blanks at left of lines.
  486.  
  487. keepBackup        ‚Ä¢ Keeps old version in <file>.BAK
  488.  
  489. indentOnCR        ‚Ä¢ Auto-indent on carriage return.
  490.  
  491.                       "Disk:C:edit;Disk:C:THINK C:include;;"
  492.  
  493.                     by using consecutive semi-colons as:
  494.  
  495.                     The current directory can be included
  496.  
  497.                       "Disk:C:edit;Disk:C:THINK C:include;"
  498.  
  499.                     separated by semi-colons, such as:
  500.  
  501.                     directories to search for include files,
  502.  
  503. includePath       ‚Ä¢ A list of the path-names of the 
  504.  
  505. ignoreCase        ‚Ä¢ Search is case-insensitive.
  506.  
  507.                     ALPHA uses to find function declarations.
  508.  
  509. funcExpr          ‚Ä¢ Set to the regular expression that 
  510.  
  511.                     specified by 'defHeight' and 'defWidth'.
  512.  
  513.                     same place, and have the dimension 
  514.  
  515. fullScreen        ‚Ä¢ If on, all windows are start in the 
  516.  
  517.                     mere file names.
  518.  
  519. fullNames         ‚Ä¢ Windows display pathnames instead of 
  520.  
  521.                     displaying.
  522.  
  523.                     dialog always resets this before 
  524.  
  525. forward           ‚Ä¢ set when searching forward. The 'findFile' 
  526.  
  527.                     files.
  528.  
  529. fontSize          ‚Ä¢ Default size of fonts used to display 
  530.  
  531.                     "fill" functions. See 'leftFillColumn'
  532.  
  533. fillColumn        ‚Ä¢ Number of columns use as limit for
  534.  
  535. electricSemi      ‚Ä¢ Electric 'C' semicolon on.
  536.  
  537. elecRBrace        ‚Ä¢ Electric 'C' right brace on.
  538.  
  539. elecLBrace        ‚Ä¢ Electric 'C' left brace on.
  540.  
  541.                     width in pixels.
  542.  
  543. defWidth          ‚Ä¢ If 'fullScreen' set, this is default 
  544.  
  545.                     height in pixels.
  546.  
  547. defHeight         ‚Ä¢ If 'fullScreen' set, this is default 
  548.  
  549.                     will want this turned off.
  550.  
  551.                     to key codes. Those w/ foreign keyboards
  552.  
  553.                     "bind 'c' ...." are internally converted
  554.  
  555. convertToCodes    ‚Ä¢ if non-zero, all bindings of the form
  556.  
  557.                     by the complete pathname in 'backupFolder'.
  558.  
  559.                     files are placed in the folder specified
  560.  
  561. backupFolder      ‚Ä¢ if 'useBackupFolder' is true, backup 
  562.  
  563.  
  564.  
  565. When variables are set:
  566.  
  567.  
  568.  
  569. ==========================
  570.  
  571. Explanation of Variables
  572.  
  573.  
  574.  
  575.  
  576.  
  577.  
  578.  
  579.  
  580.  
  581.  
  582.  
  583.  
  584.  
  585.  
  586.  
  587.  
  588.  
  589.  
  590.  
  591. procedures w/ or w/o parameters can be identified.
  592.  
  593. the last word in the line is used. Therefore, Pascal 
  594.  
  595. function's name. If there is no '(' in the selected line, 
  596.  
  597. previous to the first '(' in the selected line as the 
  598.  
  599. in mind is that the tag routines use the complete word 
  600.  
  601. tags for other languages. The only thing you need to bear 
  602.  
  603. of 'C' declarations, you could also use it to generate 
  604.  
  605. Note that not only can you customize this to your style 
  606.  
  607.   
  608.  
  609.   "^[^ \t#]*(.*)$""
  610.  
  611.  
  612.  
  613. is the following:
  614.  
  615. funcExpr" to suit your own style. The default expression 
  616.  
  617. you declare your functions differently, you can change " 
  618.  
  619. declarations. In other words, we don't parse the text. If 
  620.  
  621. in the string variable "funcExpr" to look for function 
  622.  
  623. ALPHA's tag generating routines use the regular expression 
  624.  
  625. tag file specified by the "tagFile" string variable. 
  626.  
  627. functions. When searching for a tag, ALPHA looks for the 
  628.  
  629. ALPHA supports the use of tags to find declarations of 
  630.  
  631.  
  632.  
  633. ==========================
  634.  
  635. Defining and Using 'C' Tags
  636.  
  637.  
  638.  
  639.  
  640.  
  641.  
  642.  
  643. ‚Ä¢ yankclip - yank from named clipboard
  644.  
  645. ‚Ä¢ type - inserts string into current window
  646.  
  647.   works outside macros as well
  648.  
  649. ‚Ä¢ set - used to set variable contents (mirrors command that
  650.  
  651. ‚Ä¢ search - search for string, based on current flag values
  652.  
  653. ‚Ä¢ saveVars - save all numeric vars
  654.  
  655. ‚Ä¢ restoreVars - restore all numeric vars to saved values
  656.  
  657. ‚Ä¢ replaceFindAgain - replace and find again
  658.  
  659. ‚Ä¢ replace - replace selection
  660.  
  661. ‚Ä¢ menu - used to instantiate the user menu
  662.  
  663. ‚Ä¢ mark - create named mark
  664.  
  665. ‚Ä¢ goto - goto named mark
  666.  
  667. ‚Ä¢ fileSet - used to define file sets
  668.  
  669. ‚Ä¢ deletemark - delete named mark
  670.  
  671. ‚Ä¢ deleteclip - delete named clipboard
  672.  
  673. ‚Ä¢ define - used to name macro
  674.  
  675. ‚Ä¢ cutclip - cut selected text to named clipboard
  676.  
  677. ‚Ä¢ copyclip - copy selected text to named clipboard
  678.  
  679. ‚Ä¢ clipsearch - search for contents of named clipboard
  680.  
  681.   resource fork of Alpha
  682.  
  683. ‚Ä¢ acmd - execute named acmd, which must be in the 
  684.  
  685.  
  686.  
  687. of use and syntax.
  688.  
  689. macros, see the distributed 'AlphaBits' file for examples
  690.  
  691. The following are commands that can only be executed from
  692.  
  693.  
  694.  
  695. dumping it to a buffer.
  696.  
  697. is compiled in these cases, try creating such a macro and 
  698.  
  699. calls, and setting named marks and clipboards. To see what 
  700.  
  701. commands include the search and replace commands, 'ACMD' 
  702.  
  703. again prompting every time the macro is executed. These 
  704.  
  705. the result of the prompt into the macro, as opposed to 
  706.  
  707. Several commands which prompt for input actually compile 
  708.  
  709.  
  710.  
  711. in the file, hmmm...
  712.  
  713. macro on the next 100 lines, but there are only 20 lines 
  714.  
  715. macros, so if you use the iteration count to execute a 
  716.  
  717. Currently there is little or no error checking done in 
  718.  
  719.  
  720.  
  721. loose!
  722.  
  723. less than 80 characters in length, or all hell will break 
  724.  
  725. Macros can be of any length, but individual lines must be 
  726.  
  727.  
  728.  
  729. example macros have been provided in the 'AlphaBits' file.
  730.  
  731. to keep it, just put it in the 'AlphaBits' file. Several 
  732.  
  733. things around, add functions, and reload it. If you want 
  734.  
  735. record a macro and dump it to a file. Play w/ it, change 
  736.  
  737. enter text. One good way to learn to write macros is to 
  738.  
  739. they found it. The keyword "type" has been provided to 
  740.  
  741. to let macros leave the environment in the same state that 
  742.  
  743. functions 'saveVars' and 'restoreVars' have been provided 
  744.  
  745. previously defined function. Macros can set variables. The 
  746.  
  747. Macros lines can be as simple as the name of a function or 
  748.  
  749.  
  750.  
  751. functions (see above). 
  752.  
  753. Macros can be bound to keys in exactly the same manner as 
  754.  
  755. hilited, the entire window is loaded by the same command. 
  756.  
  757. Selection" item of the 'Customize' window. If no text is 
  758.  
  759. accomplished by hiliting the text and selecting the "Load 
  760.  
  761. bound to keystrokes. Loading a macro or a binding is 
  762.  
  763. These macro declarations can then be edited, loaded, and 
  764.  
  765.  
  766.  
  767. only of letters of the alphabet, digits, and '_'. 
  768.  
  769. function prompts you for a macro name, which must consist 
  770.  
  771. 'Dump Function' from the 'Utilities' menu. The dump 
  772.  
  773. Utilities' menu) or written into a buffer by selecting 
  774.  
  775. executeKeyboardMacro' (this function is also in the '
  776.  
  777. keystrokes to be played back later w/ the function '
  778.  
  779. ALPHA supports keyboard macros which record a sequence of 
  780.  
  781. ========================== 
  782.  
  783. Defining and Using Macros 
  784.  
  785.  
  786.  
  787.     
  788.  
  789.  
  790.  
  791.  
  792.  
  793.  
  794.  
  795. permanently add an 'ACMD' to Alpha, use ResEdit.
  796.  
  797. type 'ACMD', but are not added to the menu. To 
  798.  
  799. keystrokes). ACMDs can be executed from other files of 
  800.  
  801. macros (macros allow ACMD functions to be bound to 
  802.  
  803. the ACMD menu under 'Utilities' and are callable from 
  804.  
  805. ACMD's that are in the 'Alpha' resource fork are added to 
  806.  
  807.  
  808.  
  809.   ‚Ä¢ The ACMD resource is released.
  810.  
  811.  
  812.  
  813.     text.
  814.  
  815.   ‚Ä¢ The original selection is replaced with the transformed
  816.  
  817.  
  818.  
  819.     parater of type 'char *'.
  820.  
  821.     should be declared as type 'char *', taking a single 
  822.  
  823.     result. Therefore, your code resource's 'main' routine
  824.  
  825.   ‚Ä¢ The ACMD transforms the string, and returns it as it's
  826.  
  827.  
  828.  
  829.     the string as it's only parameter. 
  830.  
  831.     'AEXT') is loaded, and called as a 'C' function w/ 
  832.  
  833.   ‚Ä¢ The first 'ACMD' resource in the chosen file (type 
  834.  
  835.  
  836.  
  837.     returns to delimit lines.
  838.  
  839.     The string will be null-terminated w/ carriage
  840.  
  841.   ‚Ä¢ The selection (if any) is copied into the new pointer. 
  842.  
  843.  
  844.  
  845.     size of the current selection + 1.
  846.  
  847.   ‚Ä¢ A new pointer is allocated with size equal to the
  848.  
  849.  
  850.  
  851. characters delimit individual lines. In summary:
  852.  
  853. be at least size 1 and is null-terminated. Carriage return 
  854.  
  855. when it is no longer needed. The input string will always 
  856.  
  857. the ACMD should de-allocate the input string w/ DisposPtr 
  858.  
  859. larger chunk of text than was passed in). In this case, 
  860.  
  861. ACMD allocated itself (say, if the ACMD wanted to return a 
  862.  
  863. was passed in to the ACMD, or it could be a block that the 
  864.  
  865. This output string could be the same block of memory that 
  866.  
  867. and the output string must be allocated w/ NewPtr as well. 
  868.  
  869. it's result. The input string is allocated w/ 'NewPtr', 
  870.  
  871. pointer as an argument and returns a string pointer as 
  872.  
  873. resource is just a code resource that takes a string 
  874.  
  875. executed to transform the current selection. An 'ACMD' 
  876.  
  877. Alpha command (ACMD) code resources can be loaded and 
  878.  
  879.  
  880.  
  881.  
  882.  
  883. (say, like Preditor), we can do that too.
  884.  
  885. some other way of limiting the amount of undo information 
  886.  
  887. of memory constraints, but if enough people would prefer 
  888.  
  889. disk currently flushes the undo buffer. I did this because 
  890.  
  891. Another point to bear in mind is that saving a buffer to 
  892.  
  893.  
  894.  
  895. it for a while.
  896.  
  897. not redone are lost. If this is confusing, just play with 
  898.  
  899. new modifications, all changes that you have undone but 
  900.  
  901. you undid :-) too far. Bear in mind that once you create 
  902.  
  903. you make to your file can be undone, and then redone if 
  904.  
  905. every supported (everything but 'insertFile') change that 
  906.  
  907. ALPHA supports unlimited undo and redo. This means that 
  908.  
  909.  
  910.  
  911.      "Load Selection", and only the hilited text get loaded.
  912.  
  913.   3) If a selection is hilited, the above item changes to
  914.  
  915.      an entire window at once.
  916.  
  917.   2) The "Load Window" item of the Customize menu loads
  918.  
  919.   1) The 'AlphaBits' file is always loaded at startup.
  920.  
  921.  
  922.  
  923. loaded in one of three ways:
  924.  
  925. Bindings, variable definitions, and macros can all be 
  926.  
  927.  
  928.  
  929. while the classic mac template uses the option key.
  930.  
  931. up w/ the 'control' key for emacs command combinations, 
  932.  
  933. this is not necessary. The default MacII template is set 
  934.  
  935. key. Newer Macs have both an escape and a command key, so 
  936.  
  937. backquote key and use the option key for the emacs command 
  938.  
  939. For the Classic Macs, we map the escape key to the 
  940.  
  941.  
  942.  
  943. control key. 
  944.  
  945. emacs key bindings. Emacs uses an escape key and a 
  946.  
  947. mac application. Problems arise in ALPHA's emulation of 
  948.  
  949. ALPHA's default setup uses the command key like any other 
  950.  
  951.  
  952.  
  953.  
  954.  
  955.  
  956.  
  957.     (                 Disables the item
  958.  
  959.                       a keyboard equivalent with the item
  960.  
  961.     /                 Followed by a character, associates
  962.  
  963.                       the character style of the item
  964.  
  965.     <                 Followed by B, I, U, O, or S, sets 
  966.  
  967.                       item with that character
  968.  
  969.     !                 Followed by a character, marks the
  970.  
  971.                       that icon to the item
  972.  
  973.     ^                 Followed by an icon number, adds 
  974.  
  975.     ; or Return       Separates multiple items
  976.  
  977.  
  978.  
  979.    --------------     -----
  980.  
  981.    Meta-character     Usage
  982.  
  983.  
  984.  
  985. in the data string:
  986.  
  987. Program", the following meta-characters may be embedded
  988.  
  989. As described in the section "Creating a Menu in Your 
  990.  
  991.  
  992.  
  993. characters can be embedded in the strings:
  994.  
  995. 'AlphaBits' file for an example. The following meta
  996.  
  997. the bindings. The syntax is dead simple. See the 
  998.  
  999. in the menus, as opposed to being merely callable through
  1000.  
  1001. contains names of functions or macros that just HAVE to be
  1002.  
  1003. Alpha allows the the user to build up a custom menu which
  1004.  
  1005. ‚Ä¢ The 'User' Menu
  1006.  
  1007.  
  1008.  
  1009.   See Macros
  1010.  
  1011. ‚Ä¢ Macro Definition
  1012.  
  1013.  
  1014.  
  1015.       (set dumString "the string")
  1016.  
  1017.  
  1018.  
  1019.   an analogous fashion:
  1020.  
  1021.   There are also a few string variables, which are bound in
  1022.  
  1023.  
  1024.  
  1025.       (set sillyVar on)
  1026.  
  1027.   
  1028.  
  1029.   respectively, so the above example could be written:
  1030.  
  1031.   The values 'on' and 'off' map to '1' and '0', 
  1032.  
  1033.   
  1034.  
  1035.       (set sillyVar 1)
  1036.  
  1037.   
  1038.  
  1039.   Variables are defined as follows:
  1040.  
  1041.   There are many user-definable integer variables in ALPHA. 
  1042.  
  1043. ‚Ä¢ Setting Variables 
  1044.  
  1045.  
  1046.  
  1047.   by using an external tool like 'ResEdit'.
  1048.  
  1049.   over bindings. Command equivalents can only be changed
  1050.  
  1051.   Note that menu item command equivalents take precedence
  1052.  
  1053.  
  1054.  
  1055.   string is optional in this form as well.
  1056.  
  1057.   because 1 is the ascii code for control-a. The modifier 
  1058.  
  1059.  
  1060.  
  1061.       (ascii 1  <z> beginningOfLine)
  1062.  
  1063.  
  1064.  
  1065.   the ascii binding will be:
  1066.  
  1067.  
  1068.  
  1069.       (bind 'a' <z> beginningOfLine)
  1070.  
  1071.  
  1072.  
  1073.   'beginningOfLine' is:
  1074.  
  1075.   entered in decimal. Whereas the normal binding for 
  1076.  
  1077.   keycode conversion. However, the ascii code must be 
  1078.  
  1079.   keyboards, another form was added which bypasses the 
  1080.  
  1081.   Because the hardcoded key codes reflect only the US 
  1082.  
  1083.  
  1084.  
  1085.   extra bindings are used for a DataDesk 101 keyboard.
  1086.  
  1087.   necessary mappings for the original mac keyboards, the
  1088.  
  1089.   The loaded bindings will actually be a superset of the
  1090.  
  1091.  
  1092.  
  1093.       "#define OLDMAC ....."
  1094.  
  1095.  
  1096.  
  1097.   with an original mac keyboard, uncomment the line:
  1098.  
  1099.   forms, the modifier string is optional. To use ALPHA 
  1100.  
  1101.   between the single quotes instead of an 'a'). In both 
  1102.  
  1103.   binding for control-a would have to have a 'control-a' 
  1104.  
  1105.   would also have to reflect the modifier keys, (i.e. the 
  1106.  
  1107.   table. If this was not done, the char in the quotes 
  1108.  
  1109.   are converted to key codes through lookup in a hardcoded 
  1110.  
  1111.   that both forms are machine-dependent. The ascii chars 
  1112.  
  1113.   the 'keyCode' function. It is important to recognise 
  1114.  
  1115.   The key code for any given key can be obtained by using 
  1116.  
  1117.  
  1118.  
  1119.       (bind '\6f'  forwardChar)
  1120.  
  1121.  
  1122.  
  1123.   forwardChar' on a datadesk-101 keyboard:
  1124.  
  1125.   The following line binds F13 to the function '
  1126.  
  1127.  
  1128.  
  1129. (bind '\<2-digit hex key code>' [modifier string] funcName)
  1130.  
  1131.  
  1132.  
  1133.   including function keys:
  1134.  
  1135.   you to bind the rest of the keys on your keyboard, 
  1136.  
  1137.   owners will want to do. A second form of binding allows 
  1138.  
  1139.   'convertToCodes' is set to 'off', which foreign keyboard 
  1140.  
  1141.   keycode through a hard-coded table unless the var 
  1142.  
  1143.   This form actually converts the ascii code into a US 
  1144.  
  1145.   
  1146.  
  1147.       (bind 'f' <cs> forwardChar)
  1148.  
  1149.   
  1150.  
  1151.   'forwardChar':
  1152.  
  1153.   The following line binds cmd-shift-f to the function 
  1154.  
  1155.   
  1156.  
  1157.       x   - prefixChar modifier
  1158.  
  1159.       e   - escape modifier      
  1160.  
  1161.       z   - control modifier
  1162.  
  1163.       s   - shift modifier
  1164.  
  1165.       o   - option modifier
  1166.  
  1167.       c   - command modifier
  1168.  
  1169.   containing one or more of:
  1170.  
  1171.   where c is a character, 'modifier string' is a string
  1172.  
  1173.           
  1174.  
  1175.       (bind '<character>' [modifier string] funcName)
  1176.  
  1177.   
  1178.  
  1179.   statement such as:
  1180.  
  1181.   keystroke. One way to bind a function is with a 
  1182.  
  1183.   Any function or loaded macro can be bound to any single 
  1184.  
  1185.  
  1186.  
  1187. ‚Ä¢ Key Bindings    
  1188.  
  1189.  
  1190.  
  1191. the Alphabit file:
  1192.  
  1193. tastes. There are three different types of statements in 
  1194.  
  1195. The AlphaBits file allows you to customize ALPHA to your 
  1196.  
  1197. =================================
  1198.  
  1199. Customizing ALPHA
  1200.  
  1201.  
  1202.  
  1203.  
  1204.  
  1205.  
  1206.  
  1207.  
  1208.  
  1209.  
  1210.  
  1211. item from the "Customie" menu.
  1212.  
  1213. for that variable, or selecting the "File Sets..." menu 
  1214.  
  1215. This variable can be changed by loading a new definition 
  1216.  
  1217. fileset, which is specified by the 'fileSet' variable. 
  1218.  
  1219. Functions that use file sets operate on the "current" 
  1220.  
  1221.  
  1222.  
  1223. "bindings.c" and "center.c".
  1224.  
  1225. defines a fileset named 'edit1' which contains the files 
  1226.  
  1227.  
  1228.  
  1229.     "jpl341:Pete:Alpha.101:edit:center.c")
  1230.  
  1231.     "jpl341:Pete:Alpha.101:edit:bindings.c"
  1232.  
  1233. (fileSet edit1
  1234.  
  1235.  
  1236.  
  1237. For example:
  1238.  
  1239.  
  1240.  
  1241.     ( fileSet <file-set-name> "<complete-path-name>"* )
  1242.  
  1243.  
  1244.  
  1245. follows:
  1246.  
  1247. definition. The syntax for file set definitions is as 
  1248.  
  1249. file search. File sets are defined by loading a file set 
  1250.  
  1251. to use for functions such as 'createTagsFile', and multi-
  1252.  
  1253. File Sets are used to specify a list of files for ALPHA 
  1254.  
  1255.  
  1256.  
  1257. =================================
  1258.  
  1259. Defining and Using File Sets
  1260.  
  1261.  
  1262.  
  1263.  
  1264.  
  1265. anyone else).
  1266.  
  1267. refurbished ~1984 machine, so it hurts me as much as 
  1268.  
  1269. on 8MHz machines. This WILL change (I work on a 
  1270.  
  1271. my first pass is a recursive function that is rather slow 
  1272.  
  1273. Regular expressions are very powerful, but unfortunately 
  1274.  
  1275.  
  1276.  
  1277.               ^[^ \t#]*(.*)$
  1278.  
  1279.  
  1280.  
  1281.          declaration might be:
  1282.  
  1283. EXAMPLE: A regular expression to look for the next function 
  1284.  
  1285.  
  1286.  
  1287. regular regular expressions. 
  1288.  
  1289. concatenated to other regular expressions to create larger 
  1290.  
  1291. constructed from one of the above elements can be 
  1292.  
  1293. '\' is the escape character. Regular expressions 
  1294.  
  1295.  
  1296.  
  1297. *        zero or more occurences of the previous pattern
  1298.  
  1299. [^...]   negated character class
  1300.  
  1301.          inside classes
  1302.  
  1303. [...]    character class, can use ranges such as '0-9' 
  1304.  
  1305. .        any character except newline
  1306.  
  1307. $        end of line
  1308.  
  1309. ^        beginning of line
  1310.  
  1311.